import request from '../MainService';
import { IPageParams } from './common';

/**
 * 新增广播数据类
 * @param name 广播名称
 * @param ip ip地址
 * @param callCoding 呼叫编码
 * @param status 状态
 */
export interface IPostBroadcast {
  /**
   * 设备类型id
   */
  brandId: number;

  /**
   * 呼叫编码
   */
  broadcastCode: string;

  /**
   * ip地址
   */
  broadcastIpAddress?: string;

  /**
   * 广播名称
   */
  broadcastName?: string;

  /**
   * 状态
   */
  broadcastStatus?: string;

  /**
   * 类型（1：采播器；2：功放；3：音箱）
   */
  type: number;

  /**
   * 设备型号id
   */
  deviceModelId: number;
}

/**
 * 编辑广播数据类
 * @param id 广播id
 * @param name 广播名称
 * @param ip ip地址
 * @param callCoding 呼叫编码
 * @param status 状态
 */
export interface IPutBroadcast {
  /**
   * 广播id
   */
  id: string;

  /**
   * 广播名称
   */
  name: string;

  /**
   * ip地址
   */
  ip?: string;

  /**
   * 呼叫编码
   */
  callCoding?: string;

  /**
   * 状态
   */
  status?: string;
}

/**
 * 广播Api类
 */
export default class BroadcastApi {
  /**
   * 分页获取广播列表
   * @param params 分页参数
   */
  public getBroadcastByPage(params: IPageParams) {
    return request({
      url: "/broadcasts",
      method: "GET",
      params
    });
  }
  
  /**
   * 新增广播数据
   * @param data 广播数据
   */
  public postBroadcast(data: IPostBroadcast) {
    return request({
      url: "/broadcasts",
      method: "POST",
      data
    });
  }
  
  /**
   * 删除广播
   * @param id 广播id
   */
  public deleteBroadcastById(id: string) {
    return request({
      url: "/broadcasts/" + id,
      method: "DELETE"
    });
  }
  
  /**
   * 编辑广播
   * @param id 广播id
   * @param data 广播数据
   */
  public putBroadcastById(id: string, data: IPutBroadcast) {
    return request({
      url: "/broadcasts/" + id,
      method: "PUT",
      data
    });
  }
  
  /**
   * 获取广播详情
   * @param id 广播id
   */
  public getBroadcastById(id: string) {
    return request({
      url: "/broadcasts/" + id,
      method: "GET"
    });
  }
}
